Skip to main content

Template Strings

Introduction

Template strings allow you to mix static text with dynamic values coming from components, Clipboards or SourceLinks.
Combined with OData operators, you can also build powerful, data-driven filters for tables and other components.

This page explains:

  • how template strings are structured
  • how to insert values like {value} safely
  • how to use OData operators such as eq, lt, contains
  • how to combine both concepts in yeet

Template Strings Basics

A template string is a normal text property that contains placeholders.
When the application runs, these placeholders are replaced with actual values.

Common usage areas:

  • labels in yLabel
  • helper texts and messages
  • dynamic OData filter expressions in tables
  • text modules filled with SourceLink data

Placeholders

Placeholders are written inside curly braces. In the docs we show them as inline code:

  • Simple value: {value}
  • Named value: {firstName}
  • Clipboard property: {clipboard.customerName}

In your property values, you would write for example:

Hello {firstName}, welcome to yeet!

Whenever you show placeholders in the documentation, wrap them in backticks like {value} instead of writing them raw.

Template strings become really useful when combined with SourceLinks.

Typical flows:

  • A component raises a SourceLink event.
  • Another component (e.g. a label or table filter) listens to that event.
  • The event payload is injected into the template string and replaces placeholders.

Example: Label text from an input

Imagine a yInput and a yLabel. You want the label to show the current input value:

Current value: {value}

Steps:

  1. Connect the yInput to the yLabel via SourceLink (for example: valueChanged → label).
  2. Set the label property of yLabel to: Current value: {value}
  3. When the input changes, the label updates automatically.

Combining Template Strings with OData

The real power comes from mixing template placeholders with OData operators in a single string.

Example: Filter by a selected customer

Suppose you have:

You can define a template string for the table’s filter:

CustomerId eq {customerId}

At runtime, {customerId} is replaced by the actual value from the Clipboard.

So if customerId = 42, the effective filter will be:

CustomerId eq 42

Example: Filter by text input

If you want a filter that searches by a user-entered term:

contains(Name, '{searchText}')

Here, {searchText} is a placeholder that gets replaced with the value from an input or Clipboard. If searchText = "max", the resulting filter is:

contains(Name, 'max')

String values should be wrapped in single quotes in OData filters, for example: City eq 'Berlin' or contains(Name, 'max').

Practical Examples

Text modules in yLabel

A simple text module using event data from a SourceLink:

Hello {firstName} {lastName}, your order number is {orderNumber}.

Connected to a SourceLink event that provides these values, the label will always show the current data.

Table filter from a selection

  1. A ySelectionPicker provides a country code.
  2. A yTable uses that value in its filter.

Filter template:

CountryCode eq '{countryCode}'

At runtime:

  • user selects DE
  • filter string becomes: CountryCode eq 'DE'
  • the table loads only entries for Germany.

Best Practices

  • Keep template strings readable: prefer Status eq 'Active' over deeply nested expressions.
  • Always quote string values with single quotes in OData filters.
  • Use clear placeholder names, for example {customerName} instead of {c}.
  • For documentation, always show placeholders as inline code: {value}, {customerId}, {searchText}.

With template strings and OData operators, you can build dynamic texts and powerful filters without writing full custom code every time.